Subject: Largest Frame Bits Propagation

From: [email-masked]
Date: Wed, 8 Jun 94 14:32:45 EDT

First let me introduce myself:

Name:       Wayne N. Taylor
Company:    IBM
Email:      [email-masked]
Telepohone: 919-254-6041

I am submitting this proposal for propagating the Largest Frame Bits (LF)
in the SSP CANUREACH/ICANREACH control messages. This proposal assumes
Steve Kleins's new connect flows as shown in the CONNECT maillog. Partial
flows will be shown here to convey the LF proposal. Comments welcome.

            _ _          _ _ _          _ _ _         _ _
          /     \       |     |        |     |      /     \
     W __|Bridged|______| 6611|________| 6611|_____|Bridged|__ Y
         |  NW   |      |  A  |        |  B  |     |  NW   |
          \ _ _ /       |_ _ _|        |_ _ _|      \ _ _ /
                         __|__          __|__
                         __|__          __|__
                         __|__          __|__
                       X __|__        Z __|__
                           |              |

Abbreviations
B    - Broadcast (ARE or STE)
ARE  - All Route Broadcast
STE  - Spanning Tree Explorer
SRF  - Specifically Routed Frame
LF   - Largest Frame
LFo  - Largest Frame Bits Origin
LFt  - Largest Frame Bits Target
LFn  - Largest Frame Bits Negotiated
LFao - Largest Frame Bits Adjusted by Origin DLSw
LFat - Largest Frame Bits Adjusted by Target DLSw
SSP  - Switch to Switch Protocol
MTU  - Maximum Transmission Unit

The LF bits would be defined in the SSP Control Message Reserved field
that follows the SSP Control Message Header Length field. This field
will be referenced as Largest Frame Size (LF Size). The definitions of
the bits in the LF Size field are as follows:

    0   1   2   3   4   5   6   7
   --------------------------------
  | r | r | b | b | b | e | e | e |
   --------------------------------

    r   .   .   .   .   .   .   .  Reserved
    .   r   .   .   .   .   .   .  Reserved
    .   .   b   .   .   .   .   .  Largest Frame Bit Base
    .   .   .   b   .   .   .   .  Largest Frame Bit Base
    .   .   .   .   b   .   .   .  Largest Frame Bit Base
    .   .   .   .   .   e   .   .  Largest Frame Bit Extended
    .   .   .   .   .   .   e   .  Largest Frame Bit Extended
    .   .   .   .   .   .   .   e  Largest Frame Bit Extended

            <----- LF Bits ----->

Refer to IEEE 802.1D Standard, Annex C for encoding of Largest Frame
base and extended bit values.

Token Ring - Token Ring (SNA)

   STN W    Origin DLSw                 Target DLSw      STN Y

  TEST-c
 --------->          CANUREACH_ex
 B  LFo        --------------------------->      TEST-c
                         LFao                   ---------->    Note 1
                                                B  LFao

                                                  TEST-r
                                                <----------
                      ICANREACH_ex                 LFt
               <---------------------------                    Note 2
   TEST-r                 LFat
 <----------
    LFat

  XID-c
 --------->          CANUREACH_cs
 SRF LFn       --------------------------->      TEST-c
                         LFn                    ---------->    Note 3
                                                B  LFn

                                                  TEST-r
                                                <----------
                      ICANREACH_cs                 LFt
               <---------------------------                    Note 4
   TEST-c                 LFat
 <----------
    B  LFat

   TEST -r
 ----------->
    LFo
                       REACH_ACK
                --------------------------->

                       XIDFRAME
                --------------------------->

NOTE 1:
A TEST frame (broadcast) generates the new explorer CANUREACH
in the origin DLSw. The origin DLSw should adjust the LF bits to the size
of the largest frame it can receive (LFao). This adjusted LF value is
included in the CANUREACH. The target DLSw responds to the CANUREACH with
the new ICANREACH explorer message if the target station is reachable
through the target DLSw. The target DLSw should adjust the LF bits that
are included in the ICANREACH to the largest frame it can receive (LFat).

Note 2:
The origin DLSw responds to the origin station TEST-c. The LF bits in
the TEST-r would be set to the adjusted target LF (LFat) that were in the
ICANREACH.

Note 3:
The first non-broadcast frame is received by the origin DLSw so a
CANUREACH_cs circuit-setup message is sent. The LF bits in the
non-broadcast frame would be included in the CANUREACH circuit-setup
message. The LF bits are included in the circuit setup message, because
implementations may choose to cache information at different times during
connection setup.

Note 4:
Upon receipt of the ICANREACH_cs message, the origin DLSw creates a link
station. The ICANREACH_cs message includes the LF bits of the target
station (LFt). The target DLSw DLC implementation may not require the
TEST-c/TEST-r exchange to create a link station.

However, there is problem with this approach if the target DLSw cache
entry for the target station has been deleted or changed before the
CANUREACH_cs message is received from a given origin station. If the
target DLSw has to perform a TEST-c/TEST-r exchange when the CANUREACH_cs
message is received, there is a chance the LF bit value in the route
obtained are less than the LF value in the CANUREACH_cs message. This
could result in frames being discarded (assuming DLSw does not segment).
Furthermore, sending the LF bits from the obtained route back to the
origin DLSw in the ICANREACH_cs doesn't help because the origin station
has already selected the route it plans to use. I am still thinking
throught this problem. Any suggestions, ideas ??

Token Ring - Token Ring (NETBIOS)

   STN W    Origin DLSw                 Target DLSw      STN Y

 Name Query
 --------->         NETBIOS_NQ_ex
 STE  LFo      --------------------------->     Name Query
                         LFao                   ---------->    Note 1
                                                STE  LFao

                                                 Name Recognized
                                                <----------
                    NETBIOS_NR_ex                 SRF  LFt
               <---------------------------
  Name Recognized         LFat
 <----------
   SRF  LFat

   SABME
 --------->          CANUREACH_cs
  SRF  LFn     --------------------------->      TEST-c
                         LFn                    ---------->    Note 2
                                                 B  LFn
     UA
 <---------                                       TEST-r
   SRF LFn                                      <----------
                      ICANREACH_cs                 LFt
               <---------------------------                    Note 3
   TEST-c                 LFat
 <----------
    B  LFat

   TEST -r
 ----------->
    LFo

     UA
<-----------
   SRF LFo
Note 1:
A NETBIOS NAME_QUERY generates the new explorer NETBIOS_NQ_ex
in the origin DLSw partner.  The target DLSw sends out the
NETBIOS NAME_QUERY contained in the NETBIOS_NQ. The origin DLSw adjusts
the LF bits to the size of the largest frame it can receive (LFao).

Note 2:
The first non-broadcast frame is received by origin partner so
a circuit-setup CANUREACH is sent.  It would be up the the
implementation to decide whether to acknowledge the SABME
immediately or wait until the ICANREACH is received.
The CANUREACH_cs causes a DLC_START_DL in the target partner,
resulting in a TEST frame exchange. A DLC implementation that does not
a TEST-c/TEST-r exchange could just respond with the ICANREACH.
The target station LF bits (LFt) are returned in the ICANREACH.

Note 3:
Upon receipt of the ICANREACH_cs the origin partner starts a
link station instance.  An implementation may optionally send a
TEST-c/Test-r exchange to create a link station.

Token Ring - Ethernet (SNA)

   STN W    Origin DLSw                 Target DLSw      STN Z

  TEST-c
 --------->          CANUREACH_ex
 B  LFo        --------------------------->      TEST-c
                         LFao                   ---------->    Note 1

                                                  TEST-r
                                                <----------
                      ICANREACH_ex
               <---------------------------                    Note 2
   TEST-r                 LFat
 <----------
    LFat

  XID-c
 --------->          CANUREACH_cs
 SRF  LFn      --------------------------->      TEST-c
                         LFn                    ---------->    Note 3

                                                  TEST-r
                                                <----------
                      ICANREACH_cs
               <---------------------------                    Note 4
   TEST-c                 LFt
 <----------
    B  LFt

   TEST -r
 ----------->
    LFo

Note 1:
A TEST frame (broadcast) generates the new explorer CANUREACH
in the origin DLSw. The LF bits included in the CANUREACH are adjusted
by the origin DLSw to the largest frame it can receive (LFat).
If the target DLSw has cached information about the target station, it
it responds with the new ICANREACH explorer message. Because the target
DLSw does not know the origin station is on a token ring media
the LF bits in the ICANREACH are adjusted to a value less than or equal
to the MTU size of the ethernet port where the TEST-r was received.
The LF value closest to the Ethernet MTU can be computed using the
largest integer value equation defined in IEEE 802.1d Standard, Annex C.
This would require the DLSw to have a table of the base LF values as
defined in the standard.

Note 2:
The origin DLSw reponds to the TEST frame with the LF bits set to
the value of LF of the target station (LFt). The origin station should
honor the value of the LF bit settings.

Note 3:
The first non-broadcast frame is received by the origin DLSw so
CANUREACH_cs circuit-setup message is sent. The LF bits in the RI
field of the non-broadcast frame is included in the circuit setup message
(LFo). The LF bits are included in the circuit setup message, because
some implementations may choose to cache information about the target
station during circuit-setup exchange rather than target explorer
exchange. The target DLSw DLC implementation may not require the
TEST-c/TEST-r exchange.

Note 4:
Upon receipt of the ICANREACH_cs message, the origin DLSw creates a link
station. The ICANREACH_cs message includes the LF bits of the target
station (LFt). The target LF bits (LFt) are derived and required as
stated in Note 1. The target DLSw DLC implementation may not require the
TEST-c/TEST-r exchange to create a link station.

Ethernet - Token Ring(SNA)

If the connection attempt is initiated from the Ethernet end station, the
LF bits for the SSP messages would be derived as stated in Note 1 for
the Token Ring - Ethernet scenario.

Token Ring - Ethernet / Ethernet - Token Ring (NETBIOS)

The NetBios flows for Token Ring to Token Ring apply for Token Ring -
Ethernet, except the derivation of the LF bits are as stated in Note 1
of the Token Ring - Ethernet (SNA).

Comments ?

  Wayne Taylor